-- 协同程序

-- 协程的创建
fun=function ( )
	print(123)
end
-- lua的协程本质是一个线程
-- 返回的是线程对象
co= coroutine.create(fun)
print(co)
print(type(co))
-- 返回的是方法对象
co2=coroutine.wrap(fun)
print(type(co2))

-- 协程的运行
-- 第一种 对应create创建的协程
coroutine.resume(co);
-- 第二种 对应方法类型的协程
co2();


-- 协程的挂起
fun3=function ()
	local x = 1
	while ture do
		print(x)
		x=x+1;
		coroutine.yield(x)
	end
end

co3= coroutine.create(fun3)
-- 第一个参数是协程是否启动成功
-- yield的返回值
isOK,tempI=coroutine.resume(co3)

print(isOK,tempI);

co4= coroutine.wrap(fun3)
print(co4())

-- 协程的状态
-- dead 结束
-- suspended 暂停
-- running 进行中